package main

import (
	"net/http"
	"net/rpc"
)

type Params struct {
	Width  int
	Height int
}

type Rect struct {
}

// RPC 服务端方法，求矩形面积
func (r *Rect) Area(p Params, ret *int) error {
	*ret = p.Width * p.Height
	return nil
}

// 周长
func (r *Rect) Perimeter(p Params, ret *int) error {
	*ret = (p.Height + p.Width) * 2
	return nil
}

// 主函数
func main() {
	//1.注册一个rect服务
	rpc.Register(new(Rect))

	//2.服务处理绑定到http协议上
	rpc.HandleHTTP()

	//3.监听服务
	err := http.ListenAndServe(":8080", nil)
	if err != nil {
		panic("监听服务失败")
	}
}
